#define _CRT_SECURE_NO_WARNINGS 1


#include<string>
#include<vector>
#include<algorithm>
#include<iostream>

using namespace std;

int Factorial(int n)
{
	int sum = 1;
	for (int i = 1; i <= n; i++)
	{
		sum *= i;
	}
	return sum;
}

bool Func(int n)
{
	int temp = n, sum = 0;
	while (temp)
	{
		sum += Factorial(temp % 10);
		temp /= 10;
	}
	return sum == n;
}

//int main()
//{
//	vector<string> v;
//	for (int i = 1; i <= 100000; i++)
//	{
//		if (Func(i))
//		{
//			string s;
//			int temp = i;
//			while (temp)
//			{
//				s += (temp % 10) + '0';
//				temp /= 10;
//			}
//			reverse(s.begin(), s.end());
//			v.push_back(s);
//		}
//	}
//	sort(v.begin(), v.end());
//	for (auto& e : v)
//	{
//		cout << e << ' ';
//	}
//	cout << endl;
//
//	return 0;
//}